package com.snap.awesomeserial.bean;

import com.snap.awesomeserial.utils.AutoUtil;

import org.litepal.crud.LitePalSupport;

import java.io.Serializable;
import java.util.List;

import io.protostuff.Tag;

/**
 * 序列化到文件中的实验数据实体类，包含{@link TemplateInfo} 和 实验运行数据
 * 使用proto buf的变种 proto stuff 序列化
 * 优点：跨平台，快速，半加密形式
 * <p>
 * tag注解的序号就是 proto buf 中的id
 * 1-15是频率出现高的字段，要做一些预留
 * 16开始就随意了
 * <p>
 * 注意点：
 * 1.每个字段都要加tag 注解
 * 2.新增字段 序号累加下去
 * 3.删除字段用@Deprecated 标记
 * 4.不序列化的字段用 transient关键字
 */
public class TemplateInfo  implements Serializable  {

    @Tag(1)
    private String name;//模板名称

    @Tag(2)
    private List<NAStep> NAProgram;    //核酸程序

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public List<NAStep> getNAProgram() {
        return NAProgram;
    }

    public void setNAProgram(List<NAStep> NAProgram) {
        this.NAProgram = NAProgram;
    }
//
//    @Override
//    public Object clone() {
//        Object obj = null;
//        try {
//            obj = super.clone();
//        } catch (CloneNotSupportedException e) {
//            e.printStackTrace();
//        }
//        return obj;
//    }
}